package com.elitel.frame.web.cfgdatalabel.controller;


import com.elitel.common.core.domain.JsonResult;
import com.elitel.frame.main.entity.dto.ServerQueryTypeDTO;
import com.elitel.frame.main.entity.dto.SysDataLabelDTO;
import com.elitel.frame.main.entity.vo.PageResponseVo;
import com.elitel.frame.web.cfgdatalabel.entity.CfgDataLabel;
import com.elitel.frame.web.cfgdatalabel.service.CfgDataLabelService;
import com.elitel.frame.web.common.controller.ApiController;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.util.List;

/**
 * @author m
 */
@RestController
@RequestMapping({"/system/data", "cfgDataLabel"})
public class CfgDataLabelController extends ApiController {

    @Resource
    private CfgDataLabelService cfgDataLabelService;

    @GetMapping("/getSysDataLabel")
    public JsonResult getSysDataLabel(ServerQueryTypeDTO queryTypeDTO) {
        List<CfgDataLabel> service = null;
        JsonResult jsonResult = new JsonResult();
        PageHelper.startPage(queryTypeDTO.getPageNo(), queryTypeDTO.getPageSize());
        service = cfgDataLabelService.getSysDataLabel(queryTypeDTO);
        PageInfo<CfgDataLabel> pageList = new PageInfo<>(service);
        PageResponseVo<CfgDataLabel> res = new PageResponseVo<>();
        res.setRows(pageList.getList());
        res.setTotal(((Long) pageList.getTotal()).intValue());
        jsonResult.setSuccess(true);
        jsonResult.setData(res);
        return jsonResult;
    }


    @GetMapping("/list")
    public JsonResult list(ServerQueryTypeDTO queryTypeDTO) {
        List<CfgDataLabel> service = cfgDataLabelService.getSysDataLabel(queryTypeDTO);
        return JsonResult.success(service);
    }

    @PostMapping("/saveSysDataLabel")
    public Object saveServerQueryType(@RequestBody SysDataLabelDTO sysDataLabelDTO) {
        JsonResult jsonResult = new JsonResult();
        try {
            cfgDataLabelService.saveSysDataLabel(sysDataLabelDTO);
            jsonResult.setSuccess(true);
        } catch (Exception e) {
            e.printStackTrace();
            jsonResult.setSuccess(false);
            jsonResult.setMsg(e.getMessage());
        }
        return jsonResult;
    }

    @PostMapping("/updateSysDataLabel")
    public Object updateSysDataLabel(@RequestBody SysDataLabelDTO sysDataLabelDTO) {
        JsonResult jsonResult = new JsonResult();
        try {
            cfgDataLabelService.updateSysDataLabel(sysDataLabelDTO);
            jsonResult.setSuccess(true);
        } catch (Exception e) {
            e.printStackTrace();
            jsonResult.setSuccess(false);
            jsonResult.setMsg(e.getMessage());
        }
        return jsonResult;
    }

    @PostMapping("/delSysDataLabel")
    public Object delSysDataLabel(@RequestBody SysDataLabelDTO sysDataLabelDTO) {
        JsonResult jsonResult = new JsonResult();
        cfgDataLabelService.delSysDataLabel(sysDataLabelDTO);
        jsonResult.setSuccess(true);
        return jsonResult;
    }
}
